-- @Author: 作者QQ2308873645
-- @Date:   2021-11-27 13:12:31
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-19 08:21:23
-- @Author: 作者QQ381990860
-- @Date:   2021-10-26 17:41:15
-- @Last Modified by:   作者QQ2308873645
-- @Last Modified time: 2021-12-14 21:25:10
-- @Author: 作者QQ381990860
-- @Date:   2021-10-26 17:41:15
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2021-11-10 04:13:50
function 任务控制类:设置抓鬼任务(id)------------------------------完成--------------------
 if 取队伍符合等级(id,40)==false then
    广播队伍消息(id,7,"#Y/队伍平均等级达到40级才可领取此任务")
 else
    self.检查通过=""
    self.检查次数=200
    if 玩家数据[id].队伍==0 then
      if 角色处理类:GetTaskID(玩家数据[id],"抓鬼")~=0 then
      self.检查通过=玩家数据[id].角色.名称
      end
       if  活动数据.抓鬼[id]==nil then
          活动数据.抓鬼[id] = 400
       else
         self.检查次数 = 活动数据.抓鬼[id]
        end
    else
      for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
        if 角色处理类:GetTaskID(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]],"抓鬼")~=0 then
        self.检查通过=玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称..","..self.检查通过
        end
         if  活动数据.抓鬼[队伍数据[玩家数据[id].队伍].队员数据[n]]==nil then
            活动数据.抓鬼[队伍数据[玩家数据[id].队伍].队员数据[n]] = 400
         else
            self.检查次数 = 活动数据.抓鬼[队伍数据[玩家数据[id].队伍].队员数据[n]]
         end
      end
    end
    if self.检查通过~="" then
    广播队伍消息(id,7,"#Y/"..self.检查通过.."已经领取过此任务了")
    elseif self.检查次数 <1  then
          广播队伍消息(id,7,"#Y/队伍中有人抓鬼次数已经达到上限无法在进行抓鬼")
    else

      -- if 角色处理类:GetTaskID(玩家数据[id],"法宝") == 0 and math.random(100)<=5 and 玩家数据[id].角色.等级>=60 then
      --   玩家数据[id].法宝 =true
      --   发送数据(玩家数据[id].连接id,20,{"钟馗","钟馗","恭喜你激活了一个法宝任务,是否领取该任务呢?",{"领取法宝任务","我不需要法宝"}})
      -- else
         self:添加抓鬼任务(id)
      end
    end
 end

function 任务控制类:添加抓鬼任务(id)----------------------------完成
  local 抓鬼名称1={"子时","丑时","寅时","卵时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"}
  local 抓鬼名称2={"一刻","二刻","三刻","四刻","五刻","六刻",}
  local 抓鬼名称3 = {"诌鬼","假鬼","奸鬼","捣蛋鬼","冒失鬼","烟沙鬼","挖渣鬼","仔细鬼","讨吃鬼","醉死鬼","抠掏鬼","伶俐鬼","急突鬼","丢谎鬼","乜斜鬼","撩桥鬼","饿鬼","色鬼","穷鬼","刻山鬼","吸血鬼","惊鸿鬼","清明鬼"}
 local 抓鬼地图={1501,1092,1142,1193,1173,1146,1140,1070,1226,1209,1040}
 local 临时id=tonumber(id.."4"..os.time())
 local 抓鬼地图编号=抓鬼地图[math.random(#抓鬼地图)]
 local 临时坐标=  地图处理类:Randomloadtion(抓鬼地图编号)
 local 抓鬼造型={"牛头","马面","骷髅怪","僵尸","野鬼",}
 local 临时造型=抓鬼造型[math.random(#抓鬼造型)]
 local 临时名称=抓鬼名称1[math.random(#抓鬼名称1)]..抓鬼名称2[math.random(#抓鬼名称2)]..抓鬼名称3[math.random(#抓鬼名称3)]
 任务数据[临时id]={
 类型="抓鬼"
 ,id=id
 ,起始=os.time()
 ,结束=1200
 ,任务id=临时id
 ,地图编号=抓鬼地图编号
 ,地图名称=MapData[抓鬼地图编号].名称
 ,名称=临时名称
 ,造型=临时造型
 ,方向=math.random(0,3)
 ,坐标=临时坐标
 ,战斗=false
 ,数字id={}
 ,客户id={}
 }
 self.任务id组={}
  if 玩家数据[id].队伍==0 then
  self.任务id组[#self.任务id组+1]=id
  else
    for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
    self.任务id组[#self.任务id组+1]=队伍数据[玩家数据[id].队伍].队员数据[n]
    end
  end
  for n=1,#self.任务id组 do
   self.任务临时id1=角色处理类:生成任务id(玩家数据[self.任务id组[n]])
   玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1]=临时id
   任务数据[临时id].数字id[#任务数据[临时id].数字id+1]=玩家数据[self.任务id组[n]].id
   任务数据[临时id].客户id[#任务数据[临时id].客户id+1]=self.任务id组[n]
   活动数据.抓鬼[self.任务id组[n]]=活动数据.抓鬼[self.任务id组[n]]-1
    发送数据( 玩家数据[self.任务id组[n]].连接id,9,"#xt/#Y/你当前在抓鬼任务中还可获得#R/".. 活动数据.抓鬼[self.任务id组[n]].."#Y/次奖励")
    self:刷新追踪任务信息(self.任务id组[n])
  end
  地图处理类:添加单位(任务数据[临时id])
  发送数据(玩家数据[id].连接id,20,{"钟馗","钟馗",[[ #W/近日有#Y/]]..任务数据[临时id].名称.."#W/正在#Y/"..任务数据[临时id].地图名称.."（"..math.floor(任务数据[临时id].坐标.x)..","..math.floor(任务数据[临时id].坐标.y)..")#W/处作恶，请立即前往降服。"})

 end
function 任务控制类:完成抓鬼任务(id组,任务id)-------------------
  for n=1,#id组 do
    if 玩家数据[id组[n]]~=nil then
      self.符合抓鬼id=false
      for i=1,#任务数据[任务id].数字id do
        if 玩家数据[id组[n]].id==任务数据[任务id].数字id[i] then
        self.符合抓鬼id=true
        end
      end
      if self.符合抓鬼id then
        角色处理类:取消任务(玩家数据[id组[n]],任务id)
        self.抓鬼奖励参数=玩家数据[id组[n]].角色.抓鬼次数*0.1+1
        self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
        self.等级误差=取经验差(任务数据[任务id].平均等级,self.抓鬼奖励等级)
        self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*90*self.抓鬼奖励参数*self.等级误差)
        self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*3)+10000
        角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"抓鬼")
        角色处理类:添加银子(玩家数据[id组[n]],self.抓鬼奖励银子,"抓鬼")
        角色处理类:添加活跃度(玩家数据[id组[n]],1)
        角色处理类:添加储备(玩家数据[id组[n]],math.floor(self.抓鬼奖励银子*2.5),"抓鬼")
        if 活动进度[id组[n]] == nil then
          活动进度[id组[n]]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
        end
        if 活动进度[id组[n]].抓鬼 < 200 then
         活动进度[id组[n]].抓鬼 = 活动进度[id组[n]].抓鬼 + 1
        end
        if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
        self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
        self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 100 * self.抓鬼奖励参数)
        玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
         if 玩家数据[id组[n]].队伍 == 0 or #队伍数据[玩家数据[id组[n]].队伍].队员数据 < 2 then
            if 玩家数据[id组[n]].召唤兽.数据.参战一 ~= nil and 玩家数据[id组[n]].召唤兽.数据.参战一 ~= 0 then
               玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战一,2)
            end
            if 玩家数据[id组[n]].召唤兽.数据.参战二 ~= nil and 玩家数据[id组[n]].召唤兽.数据.参战二 ~= 0 then
               玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战二,2)
            end
            if 玩家数据[id组[n]].召唤兽.数据.参战三 ~= nil and 玩家数据[id组[n]].召唤兽.数据.参战三 ~= 0 then
               玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战三,2)
            end
            if 玩家数据[id组[n]].召唤兽.数据.参战四 ~= nil and 玩家数据[id组[n]].召唤兽.数据.参战四 ~= 0 then
               玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战四,2)
            end
         end
        end
        if 玩家数据[id组[n]].角色.抓鬼次数==10 then
          local 随机奖励 = math.random(100)
          玩家数据[id组[n]].角色.抓鬼次数=1
               if 随机奖励<=40 then
                local 名称=取召唤兽随机宝石()
                道具处理类:给予道具(id组[n],名称)
               elseif 随机奖励 <= 80 then
                local 名称=取随机宝石()
                道具处理类:给予道具(id组[n],名称)
               end
               道具处理类:系统仓库处理(id组[n])
        else
        玩家数据[id组[n]].角色.抓鬼次数=玩家数据[id组[n]].角色.抓鬼次数+1
        end
        if 玩家数据[id组[n]].成就系统.抓鬼 ~= nil then
            玩家数据[id组[n]].成就系统.抓鬼.次数 = 玩家数据[id组[n]].成就系统.抓鬼.次数 + 1
        else
        玩家数据[id组[n]].成就系统.抓鬼 = {次数=0,奖励=0,等级=0}
        end

     end
    end
  end
 地图处理类:移除单位(任务数据[任务id].地图编号,任务id)
 任务数据[任务id]=nil
 end
function 任务控制类:自动抓鬼1(id)------------------------------完成--------------------
        if 玩家数据[id].队伍 == 0 then
      发送数据(玩家数据[id].连接id, 7,"请组队参加捉鬼")
    return
        end
      local  临时id=tonumber(id.."10"..os.time())
    战斗准备类:进入处理(id,888901,"66",临时id)

 end
 function 任务控制类:完成自动捉鬼任务1(id组)

   local 平均等级 = 150




  for n=1,#id组 do

   if 玩家数据[id组[n]]~=nil then

      if 活动数据.抓鬼[id组[n]]==nil then
         活动数据.抓鬼[id组[n]] = 600
      end
    if 活动数据.自动次数[id组[n]] ==nil then
         活动数据.自动次数[id组[n]] = 0
      end

  if 活动数据.自动次数[id组[n]] > 0 then
    if 活动数据.抓鬼[id组[n]] > 0  then

    local 奖励加成 = 1
      if 角色处理类:扣除祈福次数(id组[n],"抓鬼加成")  then
            奖励加成 = 1.3
         end
    活动数据.自动次数[id组[n]] = 活动数据.自动次数[id组[n]] - 1
    活动数据.抓鬼[id组[n]] = 活动数据.抓鬼[id组[n]] -1
        self.抓鬼奖励参数=玩家数据[id组[n]].角色.抓鬼次数*0.1+1
        self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
        self.等级误差=取经验差(平均等级,self.抓鬼奖励等级)
        self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*30*self.抓鬼奖励参数*self.等级误差)
        self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*3)+10000
    self.抓鬼奖励银子1=10000
    角色处理类:添加仙玉(玩家数据[id组[n]],1,"抓鬼仙玉")
        角色处理类:添加经验(玩家数据[id组[n]],math.floor(self.抓鬼奖励经验*20*奖励加成),"抓鬼")
        角色处理类:添加银子(玩家数据[id组[n]],math.floor(self.抓鬼奖励银子1*奖励加成),"抓鬼")
        角色处理类:添加活跃度(玩家数据[id组[n]],1)
        角色处理类:添加储备(玩家数据[id组[n]],math.floor(self.抓鬼奖励银子*0.5*奖励加成),"抓鬼")
    角色处理类:添加威望积分(玩家数据[id组[n]],1)
        if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
        self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
        self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 100 * self.抓鬼奖励参数)
        玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
        end
        if 玩家数据[id组[n]].角色.抓鬼次数==10 then
          local 随机奖励 = math.random(100)
          玩家数据[id组[n]].角色.抓鬼次数=1
         if 随机奖励<=5 then
       local cj = {"新鲜牛肉","新鲜羊肉","新鲜猪肉","新鲜鸭肉","美味调料","普通调料"}
          道具处理类:给予道具(id组[n],cj[math.random(#cj)])
            elseif 随机奖励<=80 then

                装备处理类:取随机装备(id组[n],math.random(6,8),false)
            elseif 随机奖励 <= 90 then
                    道具处理类:给予道具(id组[n],"炼妖石",math.floor(玩家数据[id组[n]].角色.等级/10)*10+5)
            elseif 随机奖励 <= 95 then
                    道具处理类:给予道具(id组[n],"上古锻造图策",math.floor(玩家数据[id组[n]].角色.等级/10)*10+5)
            else
                local 随机环={"百合","桃花","兰花","红玫瑰","康乃馨","牡丹","木鱼","编钟","唢呐","笛子","萧","钹","竖琴","琵琶"}
                道具处理类:给予道具(id组[n],随机环[math.random(#随机环)])
            end
        else
        玩家数据[id组[n]].角色.抓鬼次数=玩家数据[id组[n]].角色.抓鬼次数+1
        if 玩家数据[id组[n]].成就系统.抓鬼 ~= nil then
            玩家数据[id组[n]].成就系统.抓鬼.次数 = 玩家数据[id组[n]].成就系统.抓鬼.次数 + 1
        else
        玩家数据[id组[n]].成就系统.抓鬼 = {次数=0,奖励=0,等级=0}
        end

    发送数据(玩家数据[id组[n]].连接id, 7,"自动次数还剩余#R"..活动数据.自动次数[id组[n]])
        end
    else
    发送数据(玩家数据[id组[n]].连接id, 7,"#Y/每日抓鬼上限为600次,您已超出上限无法获得奖励")
   end
   else
    发送数据(玩家数据[id组[n]].连接id, 7,"#Y/您自动次数不足，不会获得奖励")
   end
  end
 end
end
function 任务控制类:完成自动抓鬼任务(id)-------------------
   if 玩家数据[id].队伍==0 then
        if 玩家数据[id]~=nil then
          self.符合抓鬼id=true
          if self.符合抓鬼id then
            if 玩家数据[id].角色.抓鬼次数 == nil then
               玩家数据[id].角色.抓鬼次数 = 1
            end
            self.抓鬼奖励参数=玩家数据[id].角色.抓鬼次数*0.1+1
            self.抓鬼奖励等级=玩家数据[id].角色.等级+1
            self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*90*self.抓鬼奖励参数)
            self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*3)+10000
            角色处理类:添加经验(玩家数据[id],self.抓鬼奖励经验,"抓鬼")
            角色处理类:添加银子(玩家数据[id],self.抓鬼奖励银子,"抓鬼")
            角色处理类:添加活跃度(玩家数据[id],1)
            角色处理类:添加储备(玩家数据[id],math.floor(self.抓鬼奖励银子*2.5),"抓鬼")
            玩家数据[id].角色.自动抓鬼.次数=玩家数据[id].角色.自动抓鬼.次数-1
            if 玩家数据[id].召唤兽.数据.参战~=0 then
               self.抓鬼奖励等级=玩家数据[id].召唤兽.数据[玩家数据[id].召唤兽.数据.参战].等级
               self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 100 * self.抓鬼奖励参数)
               玩家数据[id].召唤兽:添加经验(self.抓鬼奖励经验,id,玩家数据[id].召唤兽.数据.参战,2)
            end
            if 玩家数据[id].角色.抓鬼次数==10 then
              local 随机奖励 = math.random(100)
              玩家数据[id].角色.抓鬼次数=1
                if 随机奖励<=80 then
                  local 名称=取召唤兽随机宝石()
                  道具处理类:给予道具(id,名称)
                elseif 随机奖励 <= 80 then
                  local 名称=取随机宝石()
                  道具处理类:给予道具(id,名称)
                end
                道具处理类:系统仓库处理(id)

            else
            玩家数据[id].角色.抓鬼次数=玩家数据[id].角色.抓鬼次数+1
            end
         end
        end
      角色处理类:刷新自动抓鬼数据(玩家数据[id])
   else
    local id组 = 队伍数据[玩家数据[id].队伍].队员数据
     玩家数据[id].角色.自动抓鬼.次数=玩家数据[id].角色.自动抓鬼.次数-1
     for n=1,#id组 do
       if 玩家数据[id组[n]]~=nil then
         self.符合抓鬼id=true
         if self.符合抓鬼id then
           if 玩家数据[id组[n]].角色.抓鬼次数 == nil then
              玩家数据[id组[n]].角色.抓鬼次数 = 1
           end
           self.抓鬼奖励参数=玩家数据[id组[n]].角色.抓鬼次数*0.1+1
           self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级+1
           self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*90*self.抓鬼奖励参数)
           self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*3)+10000
           角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"抓鬼")
           角色处理类:添加银子(玩家数据[id组[n]],self.抓鬼奖励银子,"抓鬼")
           角色处理类:添加活跃度(玩家数据[id组[n]],1)
           角色处理类:添加储备(玩家数据[id组[n]],math.floor(self.抓鬼奖励银子*0.5),"抓鬼")
           if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
              self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
              self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 100 * self.抓鬼奖励参数)
              玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
           end
           if 玩家数据[id组[n]].角色.抓鬼次数==10 then
             local 随机奖励 = math.random(100)
             玩家数据[id组[n]].角色.抓鬼次数=1
               if 随机奖励<=40 then
                local 名称=取召唤兽随机宝石()
                道具处理类:给予道具(id组[n],名称)
               elseif 随机奖励 <= 80 then
                local 名称=取随机宝石()
                道具处理类:给予道具(id组[n],名称)
               end
                道具处理类:系统仓库处理(id组[n])

           else
           玩家数据[id组[n]].角色.抓鬼次数=玩家数据[id组[n]].角色.抓鬼次数+1
           end
           if 玩家数据[id组[n]].成就系统.抓鬼 ~= nil then
            玩家数据[id组[n]].成就系统.抓鬼.次数 = 玩家数据[id组[n]].成就系统.抓鬼.次数 + 1
        else
        玩家数据[id组[n]].成就系统.抓鬼 = {次数=0,奖励=0,等级=0}
        end
        end
       end
     end
     角色处理类:刷新自动抓鬼数据(玩家数据[id])
   end
 end
